/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package trabalhopmforçadesenha;

/**
 *
 * @author Gustavo-Note
 */
abstract class Metodo {
    
    protected String senha;
    protected ForcaSenha forca;
    
    protected int MAXIMO_PONTOS_PARA_SENHA_MUITO_FRACA;
    protected int MAXIMO_PONTOS_PARA_SENHA_FRACA;
    protected int MAXIMO_PONTOS_PARA_SENHA_MEDIA;
    protected int MAXIMO_PONTOS_PARA_SENHA_FORTE;
    
    protected Metodo(String senha){
        this.senha = senha;
    }
    
    protected abstract ForcaSenha checarForcaSenha();
    
    protected ValorForcaSenha obterValorForcaSenha(int pontos){
        
        if(pontos <= this.MAXIMO_PONTOS_PARA_SENHA_MUITO_FRACA){
            return ValorForcaSenha.MuitoFraca;
        }
        else if(pontos <= this.MAXIMO_PONTOS_PARA_SENHA_FRACA){
            return ValorForcaSenha.Fraca;
        }
        else if(pontos <= this.MAXIMO_PONTOS_PARA_SENHA_MEDIA){
            return ValorForcaSenha.Media;
        }
        else if(pontos <= this.MAXIMO_PONTOS_PARA_SENHA_FORTE){
            return ValorForcaSenha.Forte;
        }
        else{
            return ValorForcaSenha.MuitoForte;
        }    
    }    
}
